#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
int main()
{
	int k, sum, original_number, digit;
	scanf("%d", &k);  //k=3

	int m = pow(10, k - 1);  //m=100
	int n = pow(10, k);  //n=1000

	while (m < n)  //从100-999遍历(逐个判断每个三位数是否为水仙花数)
	{
		sum = 0;
		original_number = m;  //将判断的三位数存入original_number(接下来的运算会改变m的值,最终m变为0)

		while (m)
		{
			digit = m % 10;  //截取下从个位到千位的每个数字(从低位到高位)
			sum = sum + pow(digit, k);  //每一位三次方,再相加
			m /= 10;  //去掉最低位
		}

		if (sum == original_number)
			printf("%d\n", original_number);

		m = original_number;  //将进行此次判断的数字赋值给m
		m++;  //m++,再进行某数是否为水仙花数的判断(遍历)
	}
	return 0;
}